import { _decorator, Label, Node } from 'cc';
import { BaseButton } from './base-button';
const { ccclass, property } = _decorator;

/**
 * 文本按钮组件
 */
@ccclass('TextButton')
export class TextButton extends BaseButton {
    /** 文本标签组件 */
    @property(Label)
    protected label: Label | null = null;

    /** 按钮文本 */
    @property
    protected text: string = 'Button';

    /**
     * 生命周期：加载时
     */
    protected override onLoad(): void {
        super.onLoad();
        this.componentName = 'TextButton';
        
        // 确保有Label组件
        if (!this.label) {
            this.label = this.getComponentInChildren(Label);
            if (!this.label) {
                const labelNode = new Node();
                labelNode.name = 'Label';
                this.label = labelNode.addComponent(Label);
                this.node.addChild(labelNode);
            }
        }

        // 设置初始文本
        this.setText(this.text);
    }

    /**
     * 设置按钮文本
     * @param text 文本内容
     */
    public setText(text: string): void {
        this.text = text;
        if (this.label) {
            this.label.string = text;
        }
    }

    /**
     * 获取按钮文本
     * @returns 文本内容
     */
    public getText(): string {
        return this.text;
    }
} 